.TH std::experimental::simd_abi::deduce 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::experimental::simd_abi::deduce \- std::experimental::simd_abi::deduce

.SH Synopsis
   Defined in header <experimental/simd>
   template< class T, std::size_t N, class ...Abis >  (parallelism TS v2)
   struct deduce;

   The type deduce<T, N, Abis...>::type is present if and only if:

     * T is a vectorizable type,
     * simd_abi::fixed_size<N> is supported, and
     * every type in Abis... is an ABI tag.

   Let DA denote deduce<T, N, Abis...>::type when it presents, then

     * simd_size_v<T, DA> == N,
     * simd<T, DA> is default constructible, i.e. it is supported,
     * DA is simd_abi::scalar if N == 1, otherwise it is implementation-defined.

.SH Member types

   Name Definition
   type an ABI tag type suitable for specified element type T and size N

.SH Helper types

   template< class T, std::size_t N, class ...Abis >       (parallelism TS v2)
   using deduce_t = typename deduce<T, N, Abis...>::type;

.SH Notes

   simd_abi::deduce is SFINAE-friendly.

   The ABI tag deduced via this facility is a Quality-of-Implementation feature.
   Implementations can base the choice on Abis..., but can also ignore the Abis...
   arguments. A simple implementation might simply return fixed_size<N>
   unconditionally. An optimized implementation might return an implementation-defined
   extended ABI tag for most inputs. Consequently, if you need an ABI tag for a certain
   number of elements, use fixed_size if ABI stability is of concern, and prefer
   deduce_t otherwise.

.SH Example

    This section is incomplete
    Reason: no example

.SH See also

   scalar              tag type for storing a single element
   (parallelism TS v2) \fI(typedef)\fP
   fixed_size          tag type for storing specified number of elements
   (parallelism TS v2) (alias template)
   compatible          tag type that ensures ABI compatibility
   (parallelism TS v2) (alias template)
   native              tag type that is most efficient
   (parallelism TS v2) (alias template)

.SH Category:
     * Todo no example
